/**
 * Created by hama on 2016/11/17.
 */

//用户登录和注册的设计

var mongo = require('./db');
function User(user){
    this.name = user.name;
    this.password = user.password;
    this.email = user.email;
    this.picUrl = 'timg.jpg'
}
module.exports = User;

User.prototype.save = function(callback){
    var user = {
        name:this.name,
        password:this.password,
        email:this.email,
        picUrl:this.picUrl
    }
    mongo.open(function(err,db){
        if(err){
            return callback(err);
        }
        db.collection('users',function(err,collection){
            if(err){
                mongo.close();
                return callback(err);
            }
            collection.insert(user,{safe:true},function(err,user){
                mongo.close();
                if(err){
                    return callback(err);
                }
                return callback(user[0]);
            })
        })
    })
}
//根据名称获取用户信息的get方法,登录
User.get = function(name,callback){
    mongo.open(function(err,db){
        if(err){
            return callback(err);
        }
        db.collection('users',function(err,collection){
            if(err){
                mongo.close();
                return callback(err);
            }
            collection.findOne({name:name},function(err,user){
                if(err){
                    return callback(err);
                }
                callback(null,user);
            })
        })
    })
}
User.update = function (name,picUrl,callback) {
    mongo.open(function (err,db) {
        if(err) {
            return callback(err);
        }
        db.collection('users',function (err,collection) {
            if(err) {
                return callback(err);
            }
            collection.update({name:name},{$set:{picUrl:picUrl}},{upsert:true});
            collection.findOne({name:name},function (err,user) {
                mongo.close();
                if(err) {
                    return callback(err);
                }
                console.log(user);
                return callback(null,user);
            })
        })
    })
};